Traditionally database systems that need to serve both Online-Transaction-Processing, OLTP, and, Online Analytical Processing, OLAP, workloads are decoupled, where one system serves the OLTP transactional load in real-time, and where another separate system is serving the OLAP analytical workload operating on a previously imported dataset. This setup has a number of drawbacks: it requires more physical resources, maintenance overhead, and most importantly it precludes doing OLAP analytics in near-real-time on top of the OLTP database, as it necessitates batched export and import of the data from the OLTP to the OLAP system.
The idea of providing in-memory snapshots for analytical queries by leveraging the Memory Management Unit MMU is partially solving the problem by enabling a single database to serve both OLTP and OLAP workloads, but it is severely limited by scalability bottlenecks that are related to the necessary interactions of the operating system kernel with the underlying hardware platform, and in specific the responsibility of the operating system to maintain consistency of the TLB cache entries, especially in the case of a multicore platform that exposes a large number of computing units (CPU cores). US 2013/0073513 A1 describes a method of maintaining a hybrid OLTP and OLAP database, the method comprising: executing one or more OLTP transactions; creating a virtual memory snapshot; and executing one or more OLAP queries using the virtual memory snapshot. The therein described method further comprises replicating a virtual memory page on which a data object is stored in response to an update to the data object, whereby the updated data object is accessible for OLTP transactions, while the non-updated data object remains accessible for OLAP queries. Accordingly, the therein described hybrid system can handle both OLTP and OLAP simultaneously by using hardware-assisted replication mechanisms to maintain consistent snapshots of the transactional data.